[org 0x7c00] ; tell the assembler that our offset is bootsector code

mov bp, 0x8000
mov sp, bp

; The main routine makes sure the parameters are ready and then calls the function
mov bx, HELLO
call print
call print_nl


mov bx, 0x9000
mov dh, 2
call disk_load

mov dx, [0x9000]
call print_hex

mov dx, [0x9000 + 512]
call print_hex

; that's it! we can hang now
jmp $

; remember to include subroutines below the hang
%include "04/boot_sect_print.asm"
%include "04/boot_sect_print_hex.asm"
%include "05/boot_sect_disk.asm"

; data
HELLO:
    db 'Hello, World', 0

GOODBYE:
    db 'Goodbye', 0

; padding and magic number
times 510-($-$$) db 0
dw 0xaa55

times 256 dw 0xdada
times 256 dw 0xface